package br.com.pucrs.tcc.controller;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
//import javax.mail.MessagingException;
//import javax.mail.internet.AddressException;

import br.com.pucrs.tcc.ed.Convite;
import br.com.pucrs.tcc.exception.ConviteException;
import br.com.pucrs.tcc.rn.ConviteRN;
import br.com.pucrs.tcc.util.jsf.MensagemUtil;
import br.com.pucrs.tcc.util.jsf.SessionUtil;
//import br.com.pucrs.tcc.util.mail.EmailUtil;

@ManagedBean(name = "ConvitesRecebidosBean")
@ViewScoped
public class ConvitesRecebidosBean {

	private List<Convite> convitesRecebidos;

	private Convite conviteResponde;
	
	@EJB
	private ConviteRN mConviteRN;

	public ConvitesRecebidosBean() {

	}

	public List<Convite> getConvitesRecebidos() {
		return convitesRecebidos;
	}

	public void setConvitesRecebidos(List<Convite> convitesRecebidos) {
		this.convitesRecebidos = convitesRecebidos;
	}

	
	public Convite getConviteResponde() {
		return conviteResponde;
	}

	public void setConviteResponde(Convite conviteResponde) {
		this.conviteResponde = conviteResponde;
	}

	@PostConstruct
	public void carregaDados() {
		convitesRecebidos = mConviteRN.listaRecebidos(SessionUtil.getMatriculaUsuarioLogado());
	}


	public void aceitarConvite() {
		if (conviteResponde != null) {
			try {
				mConviteRN.aceitaConvite(conviteResponde.getId());
				convitesRecebidos = mConviteRN.listaRecebidos(SessionUtil.getMatriculaUsuarioLogado());
				MensagemUtil.mostraMensagemSucesso("Convite aceito com sucesso.");
			} catch (ConviteException e) {
				MensagemUtil.mostraMensagemErro(e.getMessage());
			}
		}
	}
	
	public void recusarConvite() {
		if (conviteResponde != null) {
			try {
				mConviteRN.recusaConvite(conviteResponde.getId());
				convitesRecebidos = mConviteRN.listaRecebidos(SessionUtil.getMatriculaUsuarioLogado());
				MensagemUtil.mostraMensagemSucesso("Convite recusado com sucesso.");
			} catch (ConviteException e) {
				MensagemUtil.mostraMensagemErro(e.getMessage());
			}
		}
	}

}
